Điều kiện là gì?
Trong cuộc sống, ta thường đưa ra quyết định dựa trên tình huống: nếu trời mưa thì mang ô, ngược lại thì đi bộ bình thường. Trong lập trình, điều kiện hoạt động tương tự — chương trình kiểm tra một câu hỏi có hai đáp án (đúng hoặc sai), rồi chọn hành động phù hợp.
Trong Scratch, điều kiện được viết bằng các khối Điều khiển (màu cam) kết hợp với khối so sánh từ nhóm Phép toán hoặc Cảm biến.
Điều kiện luôn trả về một trong hai giá trị: đúng (true) hoặc sai (false). Không có câu trả lời thứ ba.
Khối "nếu … thì" (if)
Khối nếu <điều kiện> thì là dạng điều kiện đơn giản nhất. Khi điều kiện đúng, các lệnh bên trong khối được thực hiện. Khi điều kiện sai, khối bị bỏ qua hoàn toàn.
Cấu trúc khối if trong Scratch
Khối if có hình chữ C — phần lõm bên trong chứa các lệnh sẽ chạy khi điều kiện đúng. Ô hình lục giác ở đầu khối là nơi gắn điều kiện cần kiểm tra.
Mỗi khi nhân vật chạm tường, hiện cảnh báo và trừ 1 mạng — chỉ khi điều kiện chạm là đúng.
Khối "nếu … thì … không thì" (if / else)
Khi cần xử lý cả hai trường hợp — đúng lẫn sai — dùng khối nếu <điều kiện> thì … không thì …. Đây chính là cấu trúc if / else trong Scratch.
Điểm từ 8 trở lên → Giỏi. Dưới 8 → nhắc nhở cố gắng. Hai nhánh loại trừ lẫn nhau.
Với if/else, chỉ một nhánh được chạy mỗi lần kiểm tra — không bao giờ chạy cả hai cùng lúc.
So sánh và điều kiện phức hợp
Điều kiện trong Scratch thường dùng các phép so sánh:
Kết hợp nhiều điều kiện
- và (and): cả hai điều kiện đều đúng → kết quả đúng.
- hoặc (or): ít nhất một điều kiện đúng → kết quả đúng.
- không (not): đảo ngược — đúng thành sai, sai thành đúng.
Cần đủ điểm và còn mạng mới thắng — thiếu một điều kiện là chưa đủ.
Rẽ nhánh nhiều cấp (if / else if)
Khi có nhiều hơn hai khả năng, bạn có thể lồng khối if bên trong nhánh else — tạo chuỗi kiểm tra nhiều cấp.
Kiểm tra từ điều kiện cao xuống thấp — giống cách xếp loại học lực ở trường.
Khi lồng nhiều if/else, hãy kiểm tra từ điều kiện khó nhất hoặc cao nhất trước để tránh nhầm lẫn logic.
Điều kiện với khối Cảm biến
Scratch cung cấp sẵn nhiều điều kiện từ nhóm Cảm biến — không cần tự viết phép so sánh:
chạm cạnh?— nhân vật có chạm biên sân khấu không?chạm [nhân vật]?— hai nhân vật có va chạm không?phím [cách] được nhấn?— phím có đang được giữ không?chuột được nhấn?— nút chuột trái có đang bấm không?khoảng cách đến [chuột] < 50— chuột có gần nhân vật không?
Chỉ nhảy được khi đang chạm màu xanh lá (mặt đất). Ở trên không thì báo lỗi.
Điều kiện trong vòng lặp
Kết hợp vòng lặp với điều kiện là kỹ thuật rất mạnh — chương trình liên tục kiểm tra và phản ứng theo tình huống thay đổi.
Mỗi vòng lặp kiểm tra ba điều kiện độc lập — nhân vật di chuyển mượt và không ra khỏi sân khấu.
Đặt điều kiện bên trong vòng lặp khi cần phản ứng liên tục. Đặt ngoài vòng lặp khi chỉ cần kiểm tra một lần (ví dụ: kiểm tra thắng/thua).
Dự án thực hành: Game tránh chướng ngại vật
Áp dụng if/else vào game đơn giản theo các bước:
- Tạo nhân vật chính và biến
điểm,mạng. - Cờ xanh: đặt điểm = 0, mạng = 3, đưa nhân vật về giữa sân khấu.
- Vòng lặp: nếu phím phải → đổi x; nếu phím trái → đổi x ngược.
- Nếu chạm chướng ngại vật → trừ mạng, đưa nhân vật về vị trí cũ.
- Nếu mạng = 0 → nói "Thua rồi!", dừng chương trình.
- Nếu điểm ≥ 20 → nói "Thắng rồi!", dừng chương trình.
Lỗi thường gặp
- Điều kiện không bao giờ đúng: kiểm tra lại phép so sánh — dùng
>thay vì≥hoặc ngược lại. - Cả hai nhánh chạy: không thể với if/else — kiểm tra có phải hai khối if riêng biệt không.
- Điều kiện chạy một lần rồi dừng: thiếu vòng lặp — cần bọc if trong
lặp vô hạn. - So sánh chuỗi và số nhầm:
"10"(chuỗi) khác10(số) trong một số trường hợp.
- Bài 1: Nhân vật đổi màu khi chạm biên sân khấu.
- Bài 2: Quiz 3 câu — dùng if/else để báo đúng/sai.
- Bài 3: Game đuổi bắt — nếu chạm kẻ đuổi thì thua, chạm đồ ăn thì +điểm.
Câu lệnh điều kiện if/else biến chương trình từ "chạy theo thứ tự cố định" thành "tự quyết định thông minh". Hãy luyện tập với các bài toán đời thường — xếp loại điểm, kiểm tra va chạm, đếm mạng — rồi ghép thành game hoàn chỉnh trên Scratch!